## ANTES DE USAR
# Para criar data/movies.csv
import_data("anne_hathaway") # ou com o ator/atriz que você escolher
## Carregando pacotes exigidos: rvest
##
## Attaching package: 'rvest'
## The following object is masked from 'package:readr':
##
## guess_encoding
## Carregando pacotes exigidos: janitor
##
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
## Warning in mask$eval_all_mutate(quo): NAs introduzidos por coerção
filmes = read_imported_data("anne_hathaway")
Nessa análise, iremos explorar dados acerca das atuações de Anne Jacqueline Hathaway, uma das atrizes norte-americanas mais bem paga do mundo.
A partir das avaliações sobre os filmes de Anne Hathaway, vamos analisar os tipos de filmes nos quais ela atuou.
Inicialmente iremos analisar a avaliação da crítica através de dados extraídos do RottenTomatoes
O gráfico abaixo mostra que a maioria dos filmes Anne Hathaway teve menos 60% de boas avaliações, o que significa que são classificados como mancha do tomate verde (exibida para indicar um filme não tão bem avaliado).
p = filmes %>%
ggplot(aes(x = ano, y = avaliacao, label = filme)) +
geom_point(size = 4, color = paleta[2]) +
labs(x = "Ano", y = "Avaliação") +
scale_y_log10()
ggplotly(p)
Ao analisar o próximo gráfico, podemos confirmar a impressão anterior.
p = filmes %>%
ggplot(aes(x = "", y = avaliacao, text = paste("Filme:",filme,
"\nAvaliação:",
avaliacao,"m"))) +
geom_jitter(width = .05, alpha = .4, size = 3, color = paleta[5]) +
labs(x = "", y="Avaliação")
ggplotly(p, tooltip="text")
No histograma podemos ver que pelo menos 5 filmes tiveram certificado Fresh do Rotten Tomatoes, o que significa que 75% dos comentários são positivos e teve no mínimo 5 avaliações dos principais críticos do Rotten Tomatoes.
filmes %>%
ggplot(aes(x = avaliacao)) +
geom_histogram(binwidth = 10, boundary = 0, fill = paleta[3], color = "black") +
geom_rug(size = .5)
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
A seguir, vamos analisar como foram os indicadores de bilheteria dos filmes em que Anne Hathaway participou:
No gráfico abaixo podemos ver que a maioria dos filmes teve bilheteria abaixo de 100 milhões.
p = filmes %>%
ggplot(aes(x = ano, y = bilheteria, label = filme)) +
geom_point(size = 4, color = paleta[2]) +
labs(x = "Ano", y="Bilheteria") +
scale_y_log10()
ggplotly(p)
Já no próximo gráfico abaixo, podemos ver que apenas um filme teve bilheteria acima de 300 milhões.
p = filmes %>%
ggplot(aes(x = "", y = bilheteria, text = paste("Filme:",filme,
"\nBilheteria:",
bilheteria,"m"))) +
geom_jitter(width = .05, alpha = .4, size = 3, color = paleta[5]) +
labs(x = "", y="Bilheteria")
ggplotly(p, tooltip="text")
No histograma abaixo, é possível concluir também que apenas 2 filmes tiveram arrecadação acima da mediana (150 milhões) e que cerca de 24 filmes tiveram arrecadação igual ou abaixo de 150 milhões.
filmes %>%
ggplot(aes(x = bilheteria)) +
geom_histogram(binwidth = 15, fill = paleta[2], color = "black") +
geom_rug(size = .5)
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
Para entender melhor como se classificam os filmes interpretados por Anne Hathaway, vamos dividi-los em grupos através das variáveis avaliação e bilheteria.
Agora vamos normalizar as estatísticas descritivas abaixo:
normal = filmes %>%
mutate(bilheteria_normalizada = as.vector(scale(log10(bilheteria))),
avaliacao_normalizada = as.vector(scale(avaliacao)))
summary(normal %>% select(bilheteria_normalizada, avaliacao_normalizada))
## bilheteria_normalizada avaliacao_normalizada
## Min. :-2.1907 Min. :-1.70554
## 1st Qu.:-0.6515 1st Qu.:-0.87913
## Median : 0.3069 Median :-0.09303
## Mean : 0.0000 Mean : 0.00000
## 3rd Qu.: 0.7713 3rd Qu.: 0.84424
## Max. : 1.5135 Max. : 1.43885
Com a execução do Gap Statics é possível perceber que o melhor valor para o K é 5. Logo, assumindo assim esse valor, executamos o algoritmo do k-means.
set.seed(12345)
n_clusters = 4
cluster = normal %>%
select(bilheteria_normalizada, avaliacao_normalizada) %>%
kmeans(centers = n_clusters, nstart = 20)
agrupado = cluster %>%
augment(normal)
p1 = agrupado %>%
ggplot(aes(x = avaliacao, y = bilheteria, color = .cluster, label=filme)) +
geom_point(size = 3)+
scale_y_log10()
ggplotly(p1)
Assim, podemos concluir que existem 4 categorias de grupos de filmes em Anne Hathaway interpretou: